package com.igeek.domain;

import java.util.HashMap;
import java.util.Map;

/**
 * @author jerryHe
 * @create 2019-10-11 14:19
 */
public class Cart {
    //购物车中的所有购物项集合
    //Map的key就是商品的pid
    private Map<String,CartItem> cartItems = new HashMap<String,CartItem>();
    //购物车中商品总计
    private double total;

    //添加商品
    public void addCatrItem(CartItem item){
        //判断购物车中是否有这个商品
        //如果有，加数量
        //如果没有，加商品
        String pid = item.getProduct().getPid();
        if(cartItems.containsKey(pid)){
            //商品数量相加
            int num = item.getBuyNum() + cartItems.get(pid).getBuyNum();
            //重新设置商品数量
            cartItems.get(pid).setBuyNum(num);
        }else{
            cartItems.put(pid,item);
        }

    }


    public Cart() {
    }

    public void delelteAll() {
        cartItems.clear();
    }

    public void delelteCartItem(String pid) {
        cartItems.remove(pid);
    }

    public Map<String, CartItem> getCartItems() {
        return cartItems;
    }

    public void setCartItems(Map<String, CartItem> cartItems) {
        this.cartItems = cartItems;
    }

    public double getTotal() {
        total = 0.0;
        //遍历所有商品，把他们的小计相加
        for(Map.Entry<String,CartItem> entry : cartItems.entrySet()){
            CartItem item = entry.getValue();
            this.total+=item.getSubTotal();
        }
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }

    @Override
    public String toString() {
        return "Cart{" +
                "cartItems=" + cartItems +
                ", total=" + total +
                '}';
    }
}
